/* This is a low-level OpenGL state machine wrapper.
   
   It serves as an intermediate step between RAW OpenGL
     commands and complete state machine encapsulation
       in Epsilon3D's RenderContext.

   This allows code to be written using new OpenGL Extensions
     before the facilities to support the extension are
       fully integrated into the engine proper.
*/
class eTB_GLContext {
public:
protected:
private:
};

eglPushAttrib (GLbitfield mask) {
  if (mask & GL_ACCUM_BUFFER_BIT);
  if (mask & GL_COLOR_BUFFER_BIT);
  if (mask & GL_CURRENT_BIT);
  if (mask & GL_DEPTH_BUFFER_BIT);
  if (mask & GL_ENABLE_BIT);
  if (mask & GL_EVAL_BIT);
  if (mask & GL_FOG_BIT);
  if (mask & GL_HINT_BIT);
  if (mask & GL_LIGHTING_BIT);
  if (mask & GL_LINE_BIT);
  if (mask & GL_LIST_BIT);
  if (mask & GL_PIXEL_MODE_BIT);
  if (mask & GL_POINT_BIT);
  if (mask & GL_POLYGON_BIT);
  if (mask & GL_POLYGON_STIPPLE_BIT);
  if (mask & GL_SCISSOR_BIT);
  if (mask & GL_STENCIL_BIT);
  if (mask & GL_TEXTURE_BIT);
  if (mask & GL_TRANSFORM_BIT);
  if (mask & GL_VIEWPORT_BIT);
}
extern eTB_GLContext* gl_context;
